Lista= o colecţie de noduri (elemente), în care fiecare nod are un predecesor ( cu excepţia primului) şi un succesor (cu excepţia ultimului)
Lista poate fi implementată (alocată):
static-prin intermediul vectorilor, în segmentul de memorie stivă sau de date;
dinamic- în segmentul de memorie HEAP;
Operaţii care pot fi efectuate asupra unei liste:
creare;
actualizare (adăugări, modificări, ştergeri);
parcurgere;
splitare (divizare) in 2 sau mai multe liste;
Listele liniare alocate dinamic pot fi:
simplu înlănţuite: fiecare nod are legătură cu următorul (succesorul) nod din listă
dublu înlănţuite: fiecare nod are legătură atât cu succesorul cât şi cu predecesorul
Orice nod al unei liste liniare simplu înlănţuite alocate dinamic are următoarea structură ( neomogenă din punct de vedere al tipurilor de date, structură formată din cel puţin 2 câmpuri) :
# include <iostream>
typedef struct nod {int info; nod *urm; } ; using namespace std; int main() { nod *prim,*utim,*p; prim=NULL; constanta predefinită NULL prin care se indică o adresă inexistentă/nealocată p=new nod; se rezerva spatiu de memorie în zona HEAP ………………… delete(p); dezafectare spatiu de memorie alocat în zona HEAP }
#include <iostream> using namespace std; int main() { struct nod {int info; nod *urm; } ; nod *prim,*utim,*p..; ............................. accesul la un anumit câmp din înregistrare p->nume_câmp
Lista poate fi implementată (alocată):
- static- prin intermediul vectorilor, în segmentul de memorie stivă sau de date;
- dinamic- în segmentul de memorie HEAP;
Operaţii care pot fi efectuate asupra unei liste:Listele liniare alocate dinamic pot fi:
Orice nod al unei liste liniare simplu înlănţuite alocate dinamic are următoarea structură ( neomogenă din punct de vedere al tipurilor de date, structură formată din cel puţin 2 câmpuri) :
# include <iostream>
{int info;
nod *urm; } ;
using namespace std;
int main()
{ nod *prim,*utim,*p;
prim=NULL; constanta predefinită NULL
prin care se indică o adresă inexistentă/nealocată
p=new nod; se rezerva spatiu de memorie în zona HEAP
…………………
delete(p); dezafectare spatiu de memorie alocat în zona HEAP
}
using namespace std;
int main()
{ struct nod
{int info;
nod *urm; } ;
nod *prim,*utim,*p..;
.............................
accesul la un anumit câmp din înregistrare
p->nume_câmp